﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MengLin.OOP.DesignPattern.Singleton
{
    public class SingletonThree
    {
        //2.使用静态私有全局变量保存唯一的实例， 静态字段CLR管理，只调用1次
        private static SingletonThree _singleton = new SingletonThree();

        //1.首先将构造函数声明成私有类型，屏蔽通过直接实例化的形式访问
        private SingletonThree()
        {
            Console.WriteLine("构造函数只被执行一次");
        }

        //3.这里保证只实例化1次，也就是第一次进行实例化，接下来继续调用不会实例化
        public static SingletonThree GetInstance()
        {
            return _singleton;
        }
    }
}
